home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / backport.inc < prev    next >
Text File  |  2005-03-31  |  3KB  |  97 lines

  1. #
  2. # backport.inc
  3. #
  4. # $Id: backport.inc,v 1.6 2004/09/14 14:19:43 renaud Exp $
  5. #
  6. #
  7. # When a security flaw is discovered, many OS vendors do not update the product
  8. # to its latest version, but tend to backport the patches instead. This module
  9. # does a translation between the "fixed" (according to the vendor) products, and
  10. # the latest version number.
  11. #
  12. # Credits: This excellent idea comes is from Laurent FACQ (facq@u-bordeaux.fr) and was
  13. # initially designed to handle Debian. The idea has then been extended to be broader
  14. # than only Debian.
  15. #
  16. # Usage : 
  17. #  new_banner = get_backport_banner(banner:orig_banner);
  18. #
  19. #
  20. #
  21.  
  22. function get_backport_banner(banner)
  23. {
  24.  local_var i, j,k,l,backported_versions, real_versions, rx_backported_versions, rx_real_versions;
  25.  
  26.  i = 0;
  27.  j = 0;
  28.  k = 0;
  29.  l = 0;
  30.  
  31. #
  32. # Debian
  33. #   
  34. rx_backported_versions[k++] = '.*OpenSSH_3\\.4p1 Debian 1:3.4p1-1\\.woody\\.3';
  35. rx_real_versions[l++]        = "SSH-2.0-OpenSSH_3.7.1p2 ConvertedDebian 1:3.4p1-1.woody.3";
  36.  
  37.  
  38. rx_backported_versions[k++] = '.*OpenSSH_3\\.6\\.1p2 Debian 1:3\\.6\\.1p2-3\\.sarge\\.1';
  39. rx_real_versions[l++]        = "SSH-2.0-OpenSSH_3.7.1p2 ConvertedDebian 1:3.6.1p2-3.sarge.1";
  40.  
  41. backported_versions[i++] = "Sendmail 8.12.3/8.12.3/Debian-6.6;";
  42. real_versions[j++]     = "Sendmail 8.12.10/8.12.10/ConvertedDebian;";
  43.  
  44. #
  45. # MacOS X
  46.  
  47. rx_backported_versions[k++] = 'OpenSSH_3\\.6\\.1p1\\+CAN-2003-0693';
  48. rx_real_versions[l++]     = "SSH-2.0-OpenSSH_3.7.1p2 ConvertedMacOSX+CAN-2003-0693";
  49.  
  50. rx_backported_versions[k++] = 'OpenSSH_3\\.6\\.1p1\\+CAN-2004-0175';
  51. rx_real_versions[l++]     = "SSH-2.0-OpenSSH_3.7.1p2 ConvertedMacOSX+CAN-2004-0175";
  52. #
  53. # AltLinux 
  54. #
  55. rx_backported_versions[k++] = 'OpenSSH_3\\.6\\.1p2-alt4';
  56. rx_real_versions[l++]       = "SSH-2.0-OpenSSH_3.7.1p2-convertedAlt4";
  57.  
  58.  
  59. # FreeBSD
  60. #
  61. rx_backported_versions[k++] = "OpenSSH.*FreeBSD.*(20030916|200[4-9])";
  62. rx_real_versions[l++]       = "OpenSSH_3.7.1p2 ConvertedFreeBSD-20030916";
  63.  
  64.  
  65. #
  66. # IBM's Apache
  67. backported_versions[i++]   = "IBM_HTTP_SERVER/1.3.19.4 Apache/1.3.20"; 
  68. real_versions[j++]         = "Apache/1.3.28 (ConvertedIBM)";
  69.  
  70. backported_versions[i++]   = "IBM_HTTP_SERVER/1.3.19.6 Apache/1.3.20"; 
  71. real_versions[j++]         = "Apache/1.3.29 (ConvertedIBM)";
  72.  
  73.  
  74.  
  75.  
  76.  
  77. for ( i = 0 ; backported_versions[i] ; i ++ )
  78.  { 
  79.  if ( tolower(backported_versions[i]) >< tolower(banner) ) 
  80.     return str_replace(find:backported_versions[i], replace:real_versions[i], string:banner);
  81.  }
  82.  
  83.  for ( i = 0; rx_backported_versions[i]; i ++ )
  84.  {
  85.   if ( egrep(pattern:rx_backported_versions[i], string:banner, icase:TRUE) ) 
  86.    return ereg_replace(pattern:rx_backported_versions[i], 
  87.                replace:rx_real_versions[i],
  88.                string:banner, icase:TRUE);
  89.  }
  90.  
  91.  
  92.  return banner;
  93. }
  94.